﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Demo;
using SIIE_ERP.Codigo;

namespace Elysium.Demo.CRM.Catalogos
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class Campanas_Consulta : UserControl
    {
        private UsuarioActivo _sesion;

        public Campanas_Consulta(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;
            CargarCampanas();
        }
        ////////////////////////////////////////////////////////////////////////////
        //  PROPIEDADES DE NAVEGACION
        public string Texto { get { return _texto; } }
        public TabControl TabControlPadre { get { return _tabControlPadre; } }
        public TabItem TabItemPadre { get { return _tabItemPadre; } }

        private string _texto;
        private TabControl _tabControlPadre;
        private TabItem _tabItemPadre;

        public void setParametros(string Texto, ref TabControl tabControl, ref TabItem tabItem)
        {
            this._texto = Texto; this._tabControlPadre = tabControl; this._tabItemPadre = tabItem;
        }
        private void ButtonRegresar_Click(object sender, RoutedEventArgs e)
        {

            (this.Parent as ScrollViewer).Content = null;

        }

        // FIN DE PROPIEDADES DE NAVEGACION
        ///////////////////////////////////////////////////////////////////////////
        List<CCampana> ListaCampanas;

        private void CargarCampanas()
        {
            double Total_Presupuesto = 0;
            double Total_CostoActividades = 0;
            double Total_CostoDiferencia = 0;

            var db = new SIIE_ERP.BaseDatos.CRM.Catalogos.dbo_Cat_Campana(_sesion.RFC, _sesion.UserName);
            var campanas = db.Get_Campanas().Rows;

            ListaCampanas = new List<CCampana>();

            foreach (DataRow campana in campanas)
            {
                var Id = campana["Id_Campana"].ToString();
                var Nombre = campana["Nombre"].ToString();
                var Descripcion = campana["Descripcion"].ToString();
                var FechaInicio = campana["FechaInicio"].ToString();
                var Presupuesto = campana["Presupuesto"].ToString();
                var CostoActividades = campana["CostoActividades"].ToString();
                var CostoDiferencia = campana["CostoDiferencia"].ToString();
                var FechaFin = campana["FechaTermino"].ToString();

                ListaCampanas.Add(new CCampana(Id, Nombre, Descripcion, FechaInicio, FechaFin, Double.Parse(Presupuesto), Double.Parse(CostoActividades), Double.Parse(CostoDiferencia)));

                Total_Presupuesto += Double.Parse(Presupuesto);
                Total_CostoActividades += Double.Parse(CostoActividades);
                Total_CostoDiferencia += Double.Parse(CostoDiferencia);
            }

            ListaCampanas.Add(new CCampana("", "Total ", "", "", "", Total_Presupuesto, Total_CostoActividades, Total_CostoDiferencia));

            CampanasDataGrid.ItemsSource = ListaCampanas;            
        }

        class CCampana
        {
            public string Id { get; set; }
            public string Nombre { get; set; }
            public string Descripcion { get; set; }
            public double Presupuesto { get; set; }
            public double CostoActividades { get; set; }
            public double CostoDiferencia { get; set; }
            public string FechaInicio { get; set; }
            public string FechaFin { get; set; }
            public CCampana(string Id, string Nombre, string Descripcion, string FechaInicio, string FechaFin, double Presupuesto, double CostoActividades, double CostoDiferencia)
            {
                this.Id = Id;
                this.Nombre = Nombre;
                this.Descripcion = Descripcion;
                this.FechaFin = FechaFin;
                this.Presupuesto = Presupuesto;
                this.CostoActividades = CostoActividades;
                this.CostoDiferencia = CostoDiferencia;
                this.FechaInicio = FechaInicio;
            }
        }

        private void AbrirLinkCampanas_Click(object sender, RoutedEventArgs e)
        {
            SIIE_ERP.View.NavegacionUI.AbrirPestanaEditar((e.Source as Hyperlink).NavigateUri.OriginalString,
                                                         typeof(Catalogos.Campanas_Edita),
                                                         ref CampanasTabControl, _sesion);
        }

        private void TabItem_GotFocus(object sender, RoutedEventArgs e)
        {
            try
            {
                SIIE_ERP.View.NavegacionUI.AbrirPestanaEditar((e.OriginalSource as Hyperlink).NavigateUri.OriginalString,
                                                         typeof(Catalogos.Campanas_Edita),
                                                         ref CampanasTabControl,
                                                         _sesion);
            }
            catch (Exception)
            {
                CargarCampanas();
            }

        }

        private void ButtonNuevo_Click(object sender, RoutedEventArgs e)
        {
            SIIE_ERP.View.NavegacionUI.AbrirPestanaNuevo(typeof(Catalogos.Campanas_Alta), ref CampanasTabControl, _sesion);
        }

        private void ButtonInformacion_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("Campana.htm", "Ayuda");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

       
    }
}

